package com.pureut.system.mapper;

import com.pureut.system.domain.SysShopModeling;
import com.pureut.system.domain.dto.ProjectModelingDto;
import com.pureut.system.domain.dto.SysLineDto;
import com.pureut.system.domain.vo.SysShopModelingVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface SysShopModelingMapper {

    /**
     * 查询车间建模信息
     */
    List<SysShopModeling> selectShopModelingList(SysShopModelingVo sysShopModeling);

    /**
     * 新增车间建模
     */
    int insertShopModeling(SysShopModeling sysShopModeling);

    /**
     * 车间建模树结构
     */
    List<ProjectModelingDto> selectChildrenModelingThe();

    /**
     * 查询单个
     */
    String selectStrShopModeling(Long modelingId);

    /**
     * 查询多个
     * @return
     */
    String selectModelingByIds(@Param("modelingIds") List<String> modelingIds);

    /**
     * 修改车间建模
     */
    int updateShopModelingEdit(SysShopModeling sysShopModeling);

    /**
     * 返回父节点id
     */
    Integer judgmentModelingId(String[] array);

    /**
     * 批量删除车间建模
     */
    int deleteModelingById(String[] modelingId);

    /**
     * 查询车间建模的车间名称列表
     */
    List<SysShopModeling> getWorkshopName();

    /**
     * 查询车间建模的车间名称列表
     */
    List<SysShopModeling> getLineName();

    /**
     * 查询车间建模的车间名称列表
     */
    List<SysLineDto> getModelingLine(long modelingId);

    /**
     *
     * 根据线别编码获取名称
     * @param lineCode
     * @return
     */
    SysLineDto getModelingLineInfo(String lineCode);

    /**
     * 根据线别编码获取车间id
     */
    SysShopModeling getWorkshopId(String lineCode);

    /**
     * 获取脱脂线别
     */
    List<SysLineDto> getDegreasLine();

    /**
     *  获取分切线别
     */
    List<SysLineDto> getCutLine();

    /**
     *  获取水刺线别
     */
    List<SysLineDto> getSphinxLine();

    /**
     *  校验编码是否唯一
     */
    int checkUniqueness(String code);

    /**
     * 获取分切下的车间
     */
    List<SysShopModeling> getCutShopModeling();

    /**
     * 获取脱脂下的车间
     */
    List<SysShopModeling> getDegreasShopModeling();

    /**
     * 根据线别编码获取id
     */
    Long getLineId(String lineCode);

    /**
     * 根据线别编码获取车间编码
     */
    String getWorkshopCode(String lineCode);

    int lineModelingId(String[] array);

    /**
     * 根据线别编码获取线边绑定仓库
     * @param lineCode
     * @return
     */
    Long getStorage(String lineCode);
}
